package com.itheima07;

public class Box {
    private int milk;
    // 奶箱状态
    private boolean state = false;

    public synchronized void put(int milk) {
        // 如果有牛奶，等待消费
        if (state) {
            try {
                wait();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

        // 如果没有牛奶，就生产牛奶
        this.milk = milk;
        System.out.println("送奶工将第" + this.milk + "瓶奶放入奶箱。");

        // 生产完毕后，改变奶箱状态
        state = true;

        // 唤醒等待的线程
        notifyAll();
    }

    public synchronized void get() {
        // 如果没有牛奶，就等待生产
        if (!state) {
            try {
                wait();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        }

        // 有牛奶，就消费
        System.out.println("用户拿到第" + this.milk + "瓶奶。");

        // 消费完毕后，改变奶箱状态
        state = false;

        // 唤醒等待的线程
        notifyAll();
    }
}
